Style XAML এ একটি শক্তিশালী বৈশিষ্ট্য যা UI উপাদানগুলোর কাস্টমাইজেশন এবং পুনঃব্যবহারযোগ্যতা নিশ্চিত করতে ব্যবহৃত হয়। এটি আপনাকে একটি বা একাধিক UI উপাদানের জন্য বৈশিষ্ট্য (যেমন: রঙ, ফন্ট, মার্জিন, প্যাডিং ইত্যাদি) ডিফাইন করার সুযোগ দেয়, যাতে একই বৈশিষ্ট্যগুলো একাধিক উপাদানে প্রয়োগ করা যায়। Style এর মাধ্যমে আপনি একাধিক UI উপাদানের জন্য একই ধরনের কাস্টম স্টাইল প্রয়োগ করতে পারেন, যার ফলে কোড পুনরাবৃত্তি কমে এবং UI ডিজাইন আরও পরিষ্কার ও সহজ হয়।
Style এর উদ্দেশ্য
- UI উপাদানের কাস্টমাইজেশন: প্রতিটি UI উপাদানের জন্য স্টাইল সেট করা, যেমন ব্যাকগ্রাউন্ড, ফন্ট, মার্জিন, প্যাডিং ইত্যাদি।
- কোড পুনঃব্যবহারযোগ্যতা: একই স্টাইল একাধিক উপাদানে প্রয়োগ করা, যাতে কোডের পুনরাবৃত্তি কমে।
- UI এক্সপেরিয়েন্সের সামঞ্জস্য: স্টাইল প্রয়োগের মাধ্যমে UI এর মধ্যে সামঞ্জস্য বজায় রাখা।
XAML এ Style এর কাঠামো
একটি Style সাধারণত Window.Resources বা Page.Resources বা অন্য কোনও রিসোর্স ডিক্লারেশন সেকশনে ডিক্লেয়ার করা হয়। স্টাইলের মধ্যে Setter এলিমেন্ট ব্যবহার করে আপনি এক বা একাধিক প্রপার্টি সেট করতে পারেন।
Style এর সাধারণ কাঠামো:
<Style x:Key="ButtonStyle" TargetType="Button">
<Setter Property="Background" Value="LightBlue"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="FontSize" Value="16"/>
<Setter Property="Padding" Value="10"/>
</Style>
এখানে:
- x:Key="ButtonStyle": এটি স্টাইলের নাম বা কী। স্টাইলটি শুধুমাত্র যেসব উপাদানে এই কী ব্যবহার করা হবে, সেখানে প্রয়োগ হবে।
- TargetType="Button": এটি নির্দেশ করে যে এই স্টাইলটি Button উপাদানে প্রয়োগ হবে।
- Setter: স্টাইলের মধ্যে প্রতিটি প্রপার্টির জন্য একটি Setter ব্যবহার করা হয়, যা সেই প্রপার্টির মান নির্ধারণ করে।
XAML এ Style এর ব্যবহার
একবার একটি স্টাইল ডিফাইন করার পরে, আপনি সেটি UI উপাদানে প্রয়োগ করতে পারেন। স্টাইলটি প্রয়োগ করার জন্য Style অ্যাট্রিবিউট ব্যবহার করা হয়।
স্টাইল প্রয়োগ করার উদাহরণ:
<Window x:Class="MyApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Main Window" Height="400" Width="600">
<Window.Resources>
<Style x:Key="ButtonStyle" TargetType="Button">
<Setter Property="Background" Value="LightBlue"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="FontSize" Value="16"/>
<Setter Property="Padding" Value="10"/>
</Style>
</Window.Resources>
<Grid>
<Button Content="Click Me" Style="{StaticResource ButtonStyle}" Width="150" Height="50"/>
<Button Content="Another Button" Style="{StaticResource ButtonStyle}" Width="150" Height="50" Margin="0,60,0,0"/>
</Grid>
</Window>
এখানে:
- <Window.Resources>: স্টাইলটি Window এর রিসোর্স হিসাবে ডিক্লেয়ার করা হয়েছে, যার ফলে সমস্ত Button উপাদানে এটি প্রয়োগ করা যাবে।
- Style="{StaticResource ButtonStyle}": এখানে
Buttonউপাদানটির স্টাইলটিButtonStyleনামের স্টাইলের মাধ্যমে অ্যাপ্লাই করা হয়েছে।
এটি দুইটি বাটনের জন্য এক ধরনের স্টাইল প্রয়োগ করবে।
ডিফল্ট স্টাইল এবং Implicit Styles
XAML এ কিছু উপাদানের জন্য ডিফল্ট স্টাইলও থাকে, যা Implicit Styles নামে পরিচিত। এই ধরনের স্টাইলগুলো নির্দিষ্ট TargetType এর সব উপাদানে স্বয়ংক্রিয়ভাবে প্রয়োগ হয়, যদি সেখানে নির্দিষ্টভাবে স্টাইল ডিফাইন করা না থাকে।
উদাহরণ:
<Style TargetType="Button">
<Setter Property="Background" Value="LightBlue"/>
<Setter Property="FontSize" Value="14"/>
</Style>
এখানে, Button উপাদানের জন্য একটি ইমপ্লিসিট স্টাইল ডিফাইন করা হয়েছে। এই স্টাইলটি Button এর জন্য স্বয়ংক্রিয়ভাবে প্রয়োগ হবে, যদি অন্য কোনো স্টাইল না দেওয়া থাকে।
XAML এ Style এর উন্নত ব্যবহার
১. Triggers এবং Actions:
Triggers ব্যবহার করে আপনি কিছু বিশেষ ঘটনা বা পরিস্থিতির উপর ভিত্তি করে স্টাইলের মান পরিবর্তন করতে পারেন, যেমন হোভার বা ফোকাস ইভেন্টের সময়।
<Style x:Key="ButtonStyle" TargetType="Button">
<Setter Property="Background" Value="LightBlue"/>
<Setter Property="Foreground" Value="White"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="DarkBlue"/>
</Trigger>
</Style.Triggers>
</Style>
এখানে, যখন মাউস বাটনের উপর থাকবে, তখন ব্যাকগ্রাউন্ড পরিবর্তন হয়ে DarkBlue হবে।
২. BasedOn (Inheritance):
একটি স্টাইল অন্য একটি স্টাইলের উপর ভিত্তি করে তৈরি করা যেতে পারে, যাতে পুরানো স্টাইলের সব প্রপার্টি নতুন স্টাইলে যুক্ত হয়।
<Style x:Key="BaseButtonStyle" TargetType="Button">
<Setter Property="Background" Value="LightBlue"/>
</Style>
<Style x:Key="CustomButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseButtonStyle}">
<Setter Property="Foreground" Value="White"/>
</Style>
এখানে, CustomButtonStyle স্টাইলটি BaseButtonStyle এর উপর ভিত্তি করে তৈরি হয়েছে।
সারাংশ
Style XAML এ UI উপাদানগুলির প্রপার্টি এবং বৈশিষ্ট্য কাস্টমাইজ করতে ব্যবহৃত হয়। এটি আপনাকে:
- একাধিক UI উপাদানে একই স্টাইল প্রয়োগ করার সুবিধা দেয়।
- কোড পুনঃব্যবহারযোগ্যতা নিশ্চিত করে।
- UI ডিজাইনকে সুন্দর ও কনসিস্টেন্ট রাখে।
স্টাইল তৈরি করার জন্য Setter ব্যবহার করা হয়, এবং এটি Window.Resources বা Page.Resources এর মাধ্যমে নির্দিষ্ট করা হয়। এছাড়া, Triggers, Actions, এবং BasedOn এর মতো উন্নত ফিচারও স্টাইলের মধ্যে ব্যবহার করা যায়।
Read more